import type { 
  ChatMessageVo, 
  GetChatListParams, 
  SendDTO,
  ChatSessionVo,
  ChatMessageDetailVo,
  ChatSessionPageParams,
  ChatMessagePageParams,
  PageResult,
  SaveRecordParams,
  SaveRecordResponse
} from './types';
import { get, post, del } from '@/utils/request';

// 发送消息
export const send = (data: SendDTO) => post<null>('/chat/send', data);

// 新增对应会话聊天记录
export function addChat(data: ChatMessageVo) {
  return post('/system/message', data).json();
}

// 获取当前会话的聊天记录
export function getChatList(params: GetChatListParams) {
  return get<ChatMessageVo[]>('/system/message/list', params).json();
}

// ========== 新的会话记录和会话列表API ==========

/**
 * 获取会话列表（分页）
 */
export function getChatSessionPage(params: ChatSessionPageParams) {
  return get<PageResult<ChatSessionVo>>('/report-admin/report/chatsession/page', params);
}

/**
 * 获取会话详情列表（分页）
 */
export function getChatMessagePage(params: ChatMessagePageParams) {
  return get<PageResult<ChatMessageDetailVo>>('/report-admin/report/chatmessage/page', params);
}

/**
 * 保存会话记录
 */
export function saveRecord(data: SaveRecordParams) {
  return post<SaveRecordResponse>('/report-admin/report/chatmessage', data);
}

/**
 * 删除会话
 */
export function deleteChatSessions(ids: number[]) {
  return del('/report-admin/report/chatsession', { data: ids });
}
